{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pytorch 支持 sklearn 的重参数搜索需要其他的库。一般的项目中设置好命令行脚本后，可以通过更改脚本参数手动实现超参数搜索"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:09.818261Z",
     "start_time": "2025-01-17T14:35:06.733991Z"
    }
   },
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "from tqdm.auto import tqdm\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "print(sys.version_info)\n",
    "for module in mpl, np, pd, sklearn, torch:\n",
    "    print(module.__name__, module.__version__)\n",
    "    \n",
    "device = torch.device(\"cuda:0\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "print(device)\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sys.version_info(major=3, minor=12, micro=3, releaselevel='final', serial=0)\n",
      "matplotlib 3.10.0\n",
      "numpy 1.26.4\n",
      "pandas 2.2.3\n",
      "sklearn 1.6.0\n",
      "torch 2.5.1+cpu\n",
      "cpu\n"
     ]
    }
   ],
   "execution_count": 1
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备数据"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:11.398305Z",
     "start_time": "2025-01-17T14:35:11.334995Z"
    }
   },
   "source": [
    "from sklearn.datasets import fetch_california_housing\n",
    "\n",
    "housing = fetch_california_housing()\n",
    "print(housing.DESCR)\n",
    "print(housing.data.shape)\n",
    "print(housing.target.shape)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _california_housing_dataset:\n",
      "\n",
      "California Housing dataset\n",
      "--------------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      ":Number of Instances: 20640\n",
      "\n",
      ":Number of Attributes: 8 numeric, predictive attributes and the target\n",
      "\n",
      ":Attribute Information:\n",
      "    - MedInc        median income in block group\n",
      "    - HouseAge      median house age in block group\n",
      "    - AveRooms      average number of rooms per household\n",
      "    - AveBedrms     average number of bedrooms per household\n",
      "    - Population    block group population\n",
      "    - AveOccup      average number of household members\n",
      "    - Latitude      block group latitude\n",
      "    - Longitude     block group longitude\n",
      "\n",
      ":Missing Attribute Values: None\n",
      "\n",
      "This dataset was obtained from the StatLib repository.\n",
      "https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html\n",
      "\n",
      "The target variable is the median house value for California districts,\n",
      "expressed in hundreds of thousands of dollars ($100,000).\n",
      "\n",
      "This dataset was derived from the 1990 U.S. census, using one row per census\n",
      "block group. A block group is the smallest geographical unit for which the U.S.\n",
      "Census Bureau publishes sample data (a block group typically has a population\n",
      "of 600 to 3,000 people).\n",
      "\n",
      "A household is a group of people residing within a home. Since the average\n",
      "number of rooms and bedrooms in this dataset are provided per household, these\n",
      "columns may take surprisingly large values for block groups with few households\n",
      "and many empty houses, such as vacation resorts.\n",
      "\n",
      "It can be downloaded/loaded using the\n",
      ":func:`sklearn.datasets.fetch_california_housing` function.\n",
      "\n",
      ".. rubric:: References\n",
      "\n",
      "- Pace, R. Kelley and Ronald Barry, Sparse Spatial Autoregressions,\n",
      "  Statistics and Probability Letters, 33 (1997) 291-297\n",
      "\n",
      "(20640, 8)\n",
      "(20640,)\n"
     ]
    }
   ],
   "execution_count": 2
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:13.888150Z",
     "start_time": "2025-01-17T14:35:13.882897Z"
    }
   },
   "source": [
    "# print(housing.data[0:5])\n",
    "import pprint  #打印的格式比较 好看\n",
    "\n",
    "pprint.pprint(housing.data[0:5])\n",
    "print('-'*50)\n",
    "pprint.pprint(housing.target[0:5])"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "array([[ 8.32520000e+00,  4.10000000e+01,  6.98412698e+00,\n",
      "         1.02380952e+00,  3.22000000e+02,  2.55555556e+00,\n",
      "         3.78800000e+01, -1.22230000e+02],\n",
      "       [ 8.30140000e+00,  2.10000000e+01,  6.23813708e+00,\n",
      "         9.71880492e-01,  2.40100000e+03,  2.10984183e+00,\n",
      "         3.78600000e+01, -1.22220000e+02],\n",
      "       [ 7.25740000e+00,  5.20000000e+01,  8.28813559e+00,\n",
      "         1.07344633e+00,  4.96000000e+02,  2.80225989e+00,\n",
      "         3.78500000e+01, -1.22240000e+02],\n",
      "       [ 5.64310000e+00,  5.20000000e+01,  5.81735160e+00,\n",
      "         1.07305936e+00,  5.58000000e+02,  2.54794521e+00,\n",
      "         3.78500000e+01, -1.22250000e+02],\n",
      "       [ 3.84620000e+00,  5.20000000e+01,  6.28185328e+00,\n",
      "         1.08108108e+00,  5.65000000e+02,  2.18146718e+00,\n",
      "         3.78500000e+01, -1.22250000e+02]])\n",
      "--------------------------------------------------\n",
      "array([4.526, 3.585, 3.521, 3.413, 3.422])\n"
     ]
    }
   ],
   "execution_count": 3
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:17.743764Z",
     "start_time": "2025-01-17T14:35:17.701798Z"
    }
   },
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "#拆分训练集和测试集，random_state是随机种子,同样的随机数种子，是为了得到同样的随机值\n",
    "x_train_all, x_test, y_train_all, y_test = train_test_split(\n",
    "    housing.data, housing.target, random_state = 7)\n",
    "x_train, x_valid, y_train, y_valid = train_test_split(\n",
    "    x_train_all, y_train_all, random_state = 11)\n",
    "# 训练集\n",
    "print(x_train.shape, y_train.shape)\n",
    "# 验证集\n",
    "print(x_valid.shape, y_valid.shape)\n",
    "# 测试集\n",
    "print(x_test.shape, y_test.shape)\n",
    "\n",
    "dataset_maps = {\n",
    "    \"train\": [x_train, y_train],\n",
    "    \"valid\": [x_valid, y_valid],\n",
    "    \"test\": [x_test, y_test],\n",
    "}\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(11610, 8) (11610,)\n",
      "(3870, 8) (3870,)\n",
      "(5160, 8) (5160,)\n"
     ]
    }
   ],
   "execution_count": 4
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:20.553580Z",
     "start_time": "2025-01-17T14:35:20.543730Z"
    }
   },
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "from torch.utils.data import DataLoader\n",
    "\n",
    "\n",
    "scaler = StandardScaler()\n",
    "scaler.fit(x_train)"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StandardScaler()"
      ],
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: start;\n",
       "  justify-content: space-between;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>StandardScaler()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 5
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 构建数据集"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:23.885050Z",
     "start_time": "2025-01-17T14:35:23.876854Z"
    }
   },
   "source": [
    "from torch.utils.data import Dataset\n",
    "\n",
    "class HousingDataset(Dataset):\n",
    "    def __init__(self, mode='train'):\n",
    "        self.x, self.y = dataset_maps[mode]\n",
    "        self.x = torch.from_numpy(scaler.transform(self.x)).float()\n",
    "        self.y = torch.from_numpy(self.y).float().reshape(-1, 1)\n",
    "            \n",
    "    def __len__(self):\n",
    "        return len(self.x)\n",
    "    \n",
    "    def __getitem__(self, idx):\n",
    "        return self.x[idx], self.y[idx]\n",
    "    \n",
    "    \n",
    "train_ds = HousingDataset(\"train\")\n",
    "valid_ds = HousingDataset(\"valid\")\n",
    "test_ds = HousingDataset(\"test\")"
   ],
   "outputs": [],
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-04-25T03:30:34.945253200Z",
     "start_time": "2024-04-25T03:30:34.894354300Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "(tensor([-0.2981,  0.3523, -0.1092, -0.2506, -0.0341, -0.0060,  1.0806, -1.0611]),\n tensor([1.5140]))"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_ds[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:29.482308Z",
     "start_time": "2025-01-17T14:35:29.477862Z"
    }
   },
   "source": [
    "from torch.utils.data import DataLoader\n",
    "\n",
    "\n",
    "batch_size = 256 #大一些，可以加快训练速度\n",
    "train_loader = DataLoader(train_ds, batch_size=batch_size, shuffle=True)\n",
    "val_loader = DataLoader(valid_ds, batch_size=batch_size, shuffle=False)\n",
    "test_loader = DataLoader(test_ds, batch_size=batch_size, shuffle=False)"
   ],
   "outputs": [],
   "execution_count": 7
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 定义模型"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:35.535619Z",
     "start_time": "2025-01-17T14:35:35.531965Z"
    }
   },
   "source": [
    "#回归模型我们只需要1个数\n",
    "\n",
    "class NeuralNetwork(nn.Module):\n",
    "    def __init__(self, input_dim=8):\n",
    "        super().__init__()\n",
    "        self.linear_relu_stack = nn.Sequential(\n",
    "            nn.Linear(input_dim, 30),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(30, 1)\n",
    "            )\n",
    "        \n",
    "    def forward(self, x):\n",
    "        # x.shape [batch size, 8]\n",
    "        logits = self.linear_relu_stack(x)\n",
    "        # logits.shape [batch size, 1]\n",
    "        return logits"
   ],
   "outputs": [],
   "execution_count": 8
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:40.227762Z",
     "start_time": "2025-01-17T14:35:40.222825Z"
    }
   },
   "source": [
    "class EarlyStopCallback:\n",
    "    def __init__(self, patience=5, min_delta=0.01):\n",
    "        \"\"\"\n",
    "\n",
    "        Args:\n",
    "            patience (int, optional): Number of epochs with no improvement after which training will be stopped.. Defaults to 5.\n",
    "            min_delta (float, optional): Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute \n",
    "                change of less than min_delta, will count as no improvement. Defaults to 0.01.\n",
    "        \"\"\"\n",
    "        self.patience = patience\n",
    "        self.min_delta = min_delta\n",
    "        self.best_metric = -1\n",
    "        self.counter = 0\n",
    "        \n",
    "    def __call__(self, metric):\n",
    "        if metric >= self.best_metric + self.min_delta:\n",
    "            # update best metric\n",
    "            self.best_metric = metric\n",
    "            # reset counter \n",
    "            self.counter = 0\n",
    "        else: \n",
    "            self.counter += 1\n",
    "            \n",
    "    @property\n",
    "    def early_stop(self):\n",
    "        return self.counter >= self.patience\n"
   ],
   "outputs": [],
   "execution_count": 9
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:35:43.539209Z",
     "start_time": "2025-01-17T14:35:43.534910Z"
    }
   },
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "@torch.no_grad()\n",
    "def evaluating(model, dataloader, loss_fct):\n",
    "    loss_list = []\n",
    "    for datas, labels in dataloader:\n",
    "        datas = datas.to(device)\n",
    "        labels = labels.to(device)\n",
    "        # 前向计算\n",
    "        logits = model(datas)\n",
    "        loss = loss_fct(logits, labels)         # 验证集损失\n",
    "        loss_list.append(loss.item())\n",
    "        \n",
    "    return np.mean(loss_list)\n"
   ],
   "outputs": [],
   "execution_count": 10
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:36:45.268188Z",
     "start_time": "2025-01-17T14:36:45.262042Z"
    }
   },
   "source": [
    "# 训练\n",
    "def training(\n",
    "    model, \n",
    "    train_loader, \n",
    "    val_loader, \n",
    "    epoch, \n",
    "    loss_fct, \n",
    "    optimizer, \n",
    "    tensorboard_callback=None,\n",
    "    save_ckpt_callback=None,\n",
    "    early_stop_callback=None,\n",
    "    eval_step=500,\n",
    "    ):\n",
    "    record_dict = {\n",
    "        \"train\": [],\n",
    "        \"val\": []\n",
    "    }\n",
    "    \n",
    "    global_step = 0\n",
    "    model.train()\n",
    "    with tqdm(total=epoch * len(train_loader)) as pbar:\n",
    "        for epoch_id in range(epoch):\n",
    "            # training\n",
    "            for datas, labels in train_loader:\n",
    "                datas = datas.to(device)\n",
    "                labels = labels.to(device)\n",
    "                # 梯度清空\n",
    "                optimizer.zero_grad()\n",
    "                # 模型前向计算\n",
    "                logits = model(datas)\n",
    "                # 计算损失\n",
    "                loss = loss_fct(logits, labels)\n",
    "                # 梯度回传\n",
    "                loss.backward()\n",
    "                # 调整优化器，包括学习率的变动等\n",
    "                optimizer.step()\n",
    " \n",
    "                loss = loss.cpu().item()\n",
    "                # record\n",
    "                \n",
    "                record_dict[\"train\"].append({\n",
    "                    \"loss\": loss, \"step\": global_step\n",
    "                })\n",
    "                \n",
    "                # evaluating\n",
    "                if global_step % eval_step == 0:\n",
    "                    model.eval()\n",
    "                    val_loss = evaluating(model, val_loader, loss_fct)\n",
    "                    record_dict[\"val\"].append({\n",
    "                        \"loss\": val_loss, \"step\": global_step\n",
    "                    })\n",
    "                    model.train()\n",
    "\n",
    "                    # 早停 Early Stop\n",
    "                    if early_stop_callback is not None:\n",
    "                        early_stop_callback(-val_loss)\n",
    "                        if early_stop_callback.early_stop:\n",
    "                            print(f\"Early stop at epoch {epoch_id} / global_step {global_step}\")\n",
    "                            return record_dict\n",
    "                    \n",
    "                # udate step\n",
    "                global_step += 1\n",
    "                pbar.update(1)\n",
    "                pbar.set_postfix({\"epoch\": epoch_id})\n",
    "        \n",
    "    return record_dict\n"
   ],
   "outputs": [],
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:36:48.009619Z",
     "start_time": "2025-01-17T14:36:48.005675Z"
    }
   },
   "source": [
    "#画线要注意的是损失是不一定在零到1之间的\n",
    "def plot_learning_curves(record_dict, sample_step=5):\n",
    "    # build DataFrame\n",
    "    train_df = pd.DataFrame(record_dict[\"train\"]).set_index(\"step\").iloc[::sample_step]\n",
    "    val_df = pd.DataFrame(record_dict[\"val\"]).set_index(\"step\")\n",
    "\n",
    "    # plot\n",
    "    for idx, item in enumerate(train_df.columns):\n",
    "        plt.plot(train_df.index, train_df[item], label=f\"train_{item}\")\n",
    "        plt.plot(val_df.index, val_df[item], label=f\"val_{item}\")\n",
    "        plt.grid()\n",
    "        plt.legend()\n",
    "        # plt.xticks(range(0, train_df.index[-1], 10*sample_step), range(0, train_df.index[-1], 10*sample_step))\n",
    "        plt.xlabel(\"step\")\n",
    "\n",
    "        plt.show()\n",
    "\n",
    "# plot_learning_curves(record)  #横坐标是 steps"
   ],
   "outputs": [],
   "execution_count": 12
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": "# 网格搜索，for循环实现"
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T14:40:10.726909Z",
     "start_time": "2025-01-17T14:39:30.154224Z"
    }
   },
   "source": [
    "for lr in [1e-2, 3e-2, 3e-1, 1e-3]:\n",
    "\n",
    "    epoch = 100\n",
    "\n",
    "    model = NeuralNetwork()\n",
    "\n",
    "    # 1. 定义损失函数 采用MSE损失\n",
    "    loss_fct = nn.MSELoss()\n",
    "    # 2. 定义优化器 采用SGD\n",
    "    # Optimizers specified in the torch.optim package\n",
    "    optimizer = torch.optim.SGD(model.parameters(), lr=lr, momentum=0.9)\n",
    "\n",
    "    # 3. early stop\n",
    "    early_stop_callback = EarlyStopCallback(patience=10, min_delta=1e-3)\n",
    "\n",
    "    model = model.to(device)\n",
    "    record = training(\n",
    "        model, \n",
    "        train_loader, \n",
    "        val_loader, \n",
    "        epoch, \n",
    "        loss_fct, \n",
    "        optimizer, \n",
    "        early_stop_callback=early_stop_callback,\n",
    "        eval_step=len(train_loader)\n",
    "        )\n",
    "    print(\"lr: {}\".format(lr))\n",
    "    plot_learning_curves(record)\n",
    "    model.eval()\n",
    "    loss = evaluating(model, val_loader, loss_fct)\n",
    "    print(f\"loss:     {loss:.4f}\")"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "fef801f088074311bfdd1f2c935aa60d"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 57 / global_step 2622\n",
      "lr: 0.01\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.3547\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "0771544871bb4e5383f6494f5f4a838d"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 55 / global_step 2530\n",
      "lr: 0.03\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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CTDee+89hIeHo2fPnnjyySdVFuSpp55CQAATqERmwE8yEVXRt29fjB49WgUTV1xxBd555x2cOHGixsdv2rQJe/fuRVRUFCIjI9VNMhlFRUXYt2+f0/NKUKGTDEdeXp7qRiEic2DGgoiqsFqtWLhwIX777TcsWLAAr776Kh5++GGsXr262sdLcDBgwAB8+umnVX4n9RRE1HgwsCCiakmXxvDhw9XtscceU10ic+bMUd0ZNpvN6bH9+/fHl19+icTERFWUWVtmo7CwUHWniFWrVqnsRuvWrT3+9xCRd7ArhIiqkMzEP/7xD6xbt04Va86ePRvp6eno3r072rVrpwoyd+3ahYyMDFW4OXXqVCQkJKiRIFK8eeDAAVVb8de//hVHjhxxPK+MALn55puxfft2zJs3D48//jimT5/O+goiE2HGgoiqkKzD8uXL8dJLL6kRIJKteOGFFzBx4kQMHDhQBQ1yL10gS5YswahRo9TjH3roIVXwKaNIWrZsqeo0jBkM+b5z584YOXKkKgCVkSdPPPGET/9WInIvi6Zpmpufk4ioCpnH4uTJk5g7d66vN4WIPIj5RyIiInIbBhZERETkNuwKISIiIrdhxoKIiIjchoEFERERuQ0DCyIiInIbBhZERETkNgwsiIiIyG0YWBAREZHbMLAgIiIit2FgQURERHCX/wemgoBYK2ePTQAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.3267\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "80eb6f99bcbf48f9a295e2ded515dc5f"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 9 / global_step 414\n",
      "lr: 0.3\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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pH379ul//ud/VLFiRZUqVUotWrTQ8uXLnW5WQMnJydFzzz2nevXq2T5u0KCBRo4cWazrueD8FixYoF69etldXc2/EdOmTSv0vOnfYcOGqVq1arbfu3btqi1btshbCCinffLJJxo8eLBdVvXzzz+rVatW6tGjhw4fPux00wLG999/rwceeEBLlizR7Nmz7cWounfvrtTUVKebFrCWLVumv//972rZsqXTTQlIJ06cUKdOnezF1L755hutX79er7zyisqXL+900wLK2LFj9eabb+r111/Xhg0b7P1x48Zp4sSJTjfNr6Wmptr3OvPHeVFMH7/22mt66623tHTpUpUuXdq+L6anp3ungWaZMfLy2rdvn/fAAw8U3M/JycmrXr163pgxYxxtVyA7fPiw+fMn7/vvv3e6KQHp5MmTeQ0bNsybPXt23rXXXpv38MMPO92kgPPkk0/mXX311U43I+DddNNNeX/4wx8KPdavX7+8gQMHOtamQCMpb+rUqQX3c3Nz8+Lj4/PGjx9f8FhiYmJeVFRU3kcffeSVNjGCIikzM1MrVqyww1dnX+/H3F+8eLGjbQtkSUlJ9mOFChWcbkpAMqNVN910U6Hfa7jXl19+qXbt2mnAgAG2bNmmTRu98847Tjcr4Fx11VWaO3euNm/ebO+vWrVKP/zwg3r27Ol00wLWjh07dPDgwUL/fphr6JjpD956X/TLiwW629GjR22Ns2rVqoUeN/c3btzoWLsCmbkitZkTYYbHExISnG5OwPn4449tqdKUeOA527dvt6UHUx5++umnbX8/9NBDioyM1F133eV08wLGU089Za+u26RJE4WFhdl/r1988UUNHDjQ6aYFrIMHD9qPRb0vup7zNAIKHPvrfu3atfavILiXuTz6ww8/bOf5mAnf8GzQNiMoo0ePtvfNCIr5vTY1ewKK+3z66af64IMP9OGHH6p58+ZauXKl/QPHTO6knwMXJR5JlSpVsqn80KFDhR439+Pj4x1rV6AaNGiQpk+frvnz56tmzZpONyfgmHKlmdx9+eWXKzw83N7MBGUz2c0cm78+4R5mdUOzZs0KPda0aVPt3r3bsTYFoiFDhthRlNtvv92ukvrd736nRx991K4MhGe43vucfF8koEh2OLZt27a2xnn2X0bmfseOHR1tWyAx87BMOJk6darmzZtnlwzC/bp06aI1a9bYvzJdN/NXvhkON8cmjMM9TIny3KXyZp5EnTp1HGtTIEpLS7PzAs9mfo/Nv9PwDPPvswkiZ78vmjKbWc3jrfdFSjynmRqyGSo0/5C3b99eEyZMsEuw7rnnHqebFlBlHTNE+8UXX9i9UFx1TDPxyqyxh3uYvj13Xo9ZHmj26WC+j3uZv+LNBE5T4rntttvs3klvv/22vcF9zF4dZs5J7dq1bYnnv//9r1599VX94Q9/cLppfi0lJUVbt24tNDHW/BFjFi6YvjZltFGjRqlhw4Y2sJi9aExZzexh5RVeWSvkJyZOnJhXu3btvMjISLvseMmSJU43KaCYX7eibu+9957TTQt4LDP2nK+++iovISHBLr9s0qRJ3ttvv+10kwJOcnKy/f01/z5HR0fn1a9fP++ZZ57Jy8jIcLppfm3+/PlF/pt81113FSw1fu655/KqVq1qf7+7dOmSt2nTJq+1L8T8xztRCAAAoHiYgwIAAHwOAQUAAPgcAgoAAPA5BBQAAOBzCCgAAMDnEFAAAIDPIaAAAACfQ0ABAAA+h4ACAAB8DgEFgCPuvvtu713TA4DfIaAAAACfQ0AB4FFTpkxRixYt7BWrzRWVu3btqiFDhuhf//qXvbJ1SEiIvX333Xf29Xv27LFXBi5Xrpy9qmrv3r21c+fOX4y8jBgxQpUrV1ZcXJzuv/9+ZWZmOvhdAnC3cLefEQBOO3DggO644w6NGzdOffv21cmTJ7Vw4UL9/ve/1+7du5WcnKz33nvPvtaEkaysLPXo0UMdO3a0rwsPD7eXe7/hhhu0evVqRUZG2tfOnTtX0dHRNtSY8HLPPffY8PPiiy86/B0DcBcCCgCPBpTs7Gz169dPderUsY+Z0RTDjKhkZGQoPj6+4PX/93//p9zcXP3jH/+woyqGCTBmNMWEke7du9vHTFB59913FRMTo+bNm+uFF16wozIjR45UaCgDw0Ag4P9kAB7TqlUrdenSxYaSAQMG6J133tGJEyfO+/pVq1Zp69atio2NVZkyZezNjKykp6dr27Zthc5rwomLGXFJSUmx5SEAgYERFAAeExYWptmzZ2vRokWaNWuWJk6cqGeeeUZLly4t8vUmZLRt21YffPDBL54z800ABA8CCgCPMqWaTp062duwYcNsqWfq1Km2TJOTk1PotZdffrk++eQTValSxU5+vdBIy6lTp2yZyFiyZIkdbalVq5bHvx8A3kGJB4DHmJGS0aNHa/ny5XZS7Oeff64jR46oadOmqlu3rp34umnTJh09etROkB04cKAqVapkV+6YSbI7duywc08eeugh7d27t+C8ZsXOvffeq/Xr12vGjBl6/vnnNWjQIOafAAGEERQAHmNGQRYsWKAJEybYFTtm9OSVV15Rz5491a5dOxs+zEdT2pk/f746d+5sX//kk0/aibVm1U+NGjXsPJazR1TM/YYNG+qaa66xE23NSqHhw4c7+r0CcK+QvLy8PDefEwA8xuyDkpiYqGnTpjndFAAexHgoAADwOQQUAADgcyjxAAAAn8MICgAA8DkEFAAA4HMIKAAAwOcQUAAAgM8hoAAAAJ9DQAEAAD6HgAIAAHwOAQUAAMjX/D+jBiaa+nNrjwAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     nan\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "145c9d31dd8847e8bc77c2db24469fe1"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lr: 0.001\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGwCAYAAAD16iy9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW0pJREFUeJzt3QeYE+XWB/B/ks02YIGl9yK9VxFRLHQbVix89l6uBfUitis27F2xXcWGqCjolSJIV+lIL9I7LAts79n5nvMmk51ksz2bCbP/3/OEZbPZZJLJZs6c97zntWmapoGIiIgoCOzBuBMiIiIiwcCCiIiIgoaBBREREQUNAwsiIiIKGgYWREREFDQMLIiIiChoGFgQERFR0EQgxPLz83Ho0CHUqFEDNpst1A9PRERE5SBtr1JTU9G4cWPY7fbwCSwkqGjWrFmoH5aIiIiCYP/+/WjatGn4BBaSqdA3LC4uLmj3m5ubizlz5mDo0KFwOp1Bu18qG+6H8MD9ED64L8ID90PFpaSkqMSAfhwPm8BCH/6QoCLYgUVsbKy6T75pzMP9EB64H8IH90V44H4InpLKGFi8SUREREHDwIKIiIiChoEFERERBU3IayyIiMh6pJVATk4OwrnGIiIiAllZWXC5XGZvTliS2hOHw1Hh+2FgQUREFSIBxe7du1VwEc49GBo2bKhmJLKHUtFq1aqlXqeKvEYMLIiIqEIH7MOHD6szXZmKWFzjJDNJ0JOWlobq1auH7TaavR8zMjKQkJCgvm/UqFG574uBBRERlVteXp46IEk3RpnOGe5DNdHR0QwsihATE6O+SnBRv379cg+L8NUlIqJy0+sVIiMjzd4UCgI9OJSalPJiYEFERBXGugVrsAVhPzKwICIioqBhYEFERERBw8CCiIioAlq2bIm33norKPe1cOFCNRyRlJSEU5V1ZoWkHkZs9jHAlSNdPszeGiIiCmPnnnsuevToEZSAYOXKlahWrVpQtssKLBNYRPz3fAxJP4bcAX2BJt3N3hwiIjrF+zrIjBfp1lmSevXqhWSbThXWGQqxeebbuso/RYaIiILQaCknz5SLPHZp3HTTTVi0aBHefvttNewgl0mTJqmvs2bNQu/evREVFYU//vgDO3fuxMiRI9GgQQPVXKtv3774/fffix0Ksdls+PTTT3HZZZep6Ztt27bFL7/8Uu7X9Mcff0Tnzp3VNsljvf766z4//+CDD9RjSI8O2c4rr7zS+7OpU6eia9euqkdFnTp1MHjwYKSnp6MyWSZjAbv7qdjy2QOeiMgsmbkudHr6N1Mee/OzwxAbWfJhTQKKf/75B126dMGzzz6rrtu0aZP6+thjj+G1115D69atUbt2bdUC/IILLsALL7ygDuxffvklLr74Ymzbtg3Nmzcv8jHGjx+PV155Ba+++ireffddjB49Gnv37kV8fHyZntPq1asxatQoPPPMM7j66qvx119/4Z577lFBggRIq1atwv3334+vvvoKZ555Jk6cOIElS5ao35WOqNdee63aDglyUlNT1c9KG4CVl3UCC4enrkLLM3tLiIgojNWsWVM19JJsgqyLIbZu3aq+SqAxZMgQ720lEOjevWB4/bnnnsO0adNUBuK+++4r8jFuuukmdVAXL774It555x2sWLECw4cPL9O2vvHGGxg0aBCeeuop9X27du2wefNmFbDIY+zbt0/Vd1x00UWoUaMGWrRogZ49e3oDC+mMevnll6vrhWQvKpt1Agu7Zygkn4EFEZFZYpwOlTkw67Erqk+fPj7fy/oiki2YMWOG90CdmZmpDujF6datm/f/cuCPi4vzrsNRFlu2bFFDMUYDBgxQQy9SAyJBkAQNkmGRoEUu+hCMBEQSlEgwMWzYMAwdOlQNk0gmpjLZrTYUwsCCiMg8Ul8gwxFmXILRNdJ/dscjjzyiMhSSdZBhhLVr16oDdUlLxDv9ZifKtlXG6q+SpVizZg2+/fZbtXDY008/rQIKma4qa33MnTtX1Y106tRJDcm0b99erURbmawTWNg8gYWLgQURERVPhkL0dU6K8+eff6ohB8kCSEAhQyd79uxBqHTs2FFtg/82yZCIvkiYzFyRokyppVi/fr3avvnz53sDGslwSM3H33//rZ63BEqVyTJDIZojAipWZcaCiIhKILMrli9frg7CMtujqGyCzLb46aefVMGmHKSl1qEyMg9Fefjhh9VMFKntkOLNpUuX4r333lMzQcSvv/6KXbt2YeDAgWqIY+bMmWr7JDMhz2/evHlqCERWK5Xvjx07poKVymSdjAWHQoiIqJRkiEPO+GWIQPpQFFUzIcWTcsCWGRcSXEitQq9evUK2nb169cL333+PKVOmqFksMtQhBaaSRRG1atVSgc/555+vAoYPP/xQDYvI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2mthJomurj+jlfq/08aiHCIiIrOUKWNx4MABFURIr/J69erhrLPOUku5yv/N5vBEoHaNLb2JiIhOicBiypQpCFeazf1UHBqHQoiIiMximbVC9AZZdjBjQUREZBbrBBaelt4OjTUWREREZrFcYMGMBRERkXksFFi4pzmxxoKIiMg8lgksvMWbzFgQERGZxjKBhc3O6aZERERms0xgoelDIcxYEBERmcYygYXNM93UgXxZbcbszSEiIqqSrBNYeGaFKPks4CQiIjKDZQILeGosFAYWREREprBOYBHBjAUREZHZLBNY2DzFmwoDCyIiIlNYKLAwDIW4GFgQERGZwUKBhQ15mufpMGNBRERkCssEFnabDS54hkMYWBAREZnCQoEFkKc/HQYWREREprBQYMGMBRERkdksE1jYbEAuAwsiIiJTWSawYMaCiIjIfJYKLFhjQUREZC5LDYW4ND1jwRVOiYiIzGDNjIUr1+zNISIiqpIsNt3Us14Ih0KIiIhMYaHAgjUWREREZrNWjYV3VghrLIiIiMxg0YwFayyIiIjMYKHAgjUWREREZrNMYGFTDbJYY0FERGQmaw2FsI8FERGRqSwUWEjxJjMWREREZrJY8aYnY8EGWURERKaw1HRTb2DBjAUREZEprJmxYGBBRERkCovWWLB4k4iIyAyWmm5akLFgjQUREZEZrNUgyzvdlEMhREREZrBQYMEaCyIiIrNZKLBgjQUREZHZLFljobGPBRERkSksuWy65uJQCBERkRksVWORqwcWrLEgIiIyhSVrLDRONyUiIjKFNftYuFi8SUREZAZrZSw8fSxYvElERGQOCwUW7GNBRERkNosNheg1FgwsiIiIzGCx4k29xoKBBRERkRksFFhwKISIiMhsFgosUNB5k9NNiYiITGGZwILTTYmIiMxnmcBCuGBz/4dDIURERKawWGDBGgsiIiIzWSqwyPcGFqyxICIiOuUCi5deeknVNjz44IMIB8xYEBERnaKBxcqVK/HRRx+hW7duCBf6ImTIZ/EmERGRGSLK80tpaWkYPXo0PvnkEzz//PPF3jY7O1tddCkpKeprbm6uugSL3JeesZC1QoJ531R6+uvO199c3A/hg/siPHA/VFxpX7tyBRb33nsvLrzwQgwePLjEwGLChAkYP358oevnzJmD2NhYBFO+zR1YpKUk4c+ZM4N631Q2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CB/cF+GB+6FiistUlHsoROolpFizT58+OP300/HWW28hPT3dO0uEiIiIqq4yBxZXX301jh07hqeffhpHjhxBjx49MHv27EIFnURERFT1lKt4U4Y9Sjv0ESpSICpNu4yFohR63A/hgfshfHBfhAfuh9ApUx8LIiIiouJwETIiIiIKGgYWREREFDQMLIiIiChoGFgQERFR0FgmsHj//ffRsmVLREdHo1+/flixYoXZm3TKWrx4MS6++GLVXU26o06fPt3n51LvK9ONGzVqhJiYGAwePBjbt2/3uc2JEycwevRo1YimVq1auPXWW5GWluZzm/Xr1+Pss89W+0w64r3yyisheX6nigkTJqBv376qS239+vVVU7pt27b53CYrKwv33nsv6tSpg+rVq+OKK64o1Bl33759uPDCC9Wif3I/jz76KPLy8nxus3DhQvTq1UtVzLdp0waTJk0KyXM8FUycOBHdunXzNlaSdY5mzZrl/Tn3gTleeukl9fn04IMPeq/jvggTmgVMmTJFi4yM1D777DNt06ZN2u23367VqlVLO3r0qNmbdkqaOXOm9sQTT2g//fSTzBjSpk2b5vPzl156SatZs6Y2ffp0bd26ddoll1yitWrVSsvMzPTeZvjw4Vr37t21ZcuWaUuWLNHatGmjXXvttd6fJycnaw0aNNBGjx6tbdy4Ufv222+1mJgY7aOPPgrpcw1nw4YN0z7//HP1+qxdu1a74IILtObNm2tpaWne29x1111as2bNtHnz5mmrVq3SzjjjDO3MM8/0/jwvL0/r0qWLNnjwYO3vv/9W+7Zu3brauHHjvLfZtWuXFhsbq40ZM0bbvHmz9u6772oOh0ObPXt2yJ9zOPrll1+0GTNmaP/884+2bds27fHHH9ecTqfaL4L7IPRWrFihtWzZUuvWrZv2wAMPeK/nvggPlggsTj/9dO3ee+/1fu9yubTGjRtrEyZMMHW7rMA/sMjPz9caNmyovfrqq97rkpKStKioKBUcCPljlN9buXKl9zazZs3SbDabdvDgQfX9Bx98oNWuXVvLzs723mbs2LFa+/btQ/TMTj0JCQnqdV20aJH3dZcD3A8//OC9zZYtW9Rtli5dqr6XD0673a4dOXLEe5uJEydqcXFx3tf+3//+t9a5c2efx7r66qtVYEOByXv3008/5T4wQWpqqta2bVtt7ty52jnnnOMNLLgvwscpPxSSk5OD1atXq3S8cT0S+X7p0qWmbpsV7d69W3VcNb7e0jtehp/011u+yvCHtH3Xye1lvyxfvtx7m4EDB6r1Z3TDhg1Tqf6TJ0+G9DmdKpKTk9XX+Ph49VXe97IUtHFfdOjQAc2bN/fZF127dvXpjCuvsyzItGnTJu9tjPeh34Z/P4W5XC5MmTJFLWMgQyLcB6EnQx0ylOH/enFfhI9KXza9siUmJqo/dv+W4vL91q1bTdsuq5KgQgR6vfWfyVcZuzSKiIhQB0TjbVq1alXoPvSf1a5du1Kfx6lGFvuTseQBAwagS5cu3tdJAjMJ4orbF4H2lf6z4m4jH7aZmZmqjqaq27BhgwokZAxfxu6nTZuGTp06Ye3atdwHISRB3Zo1a7By5cpCP+PfQ/g45QMLoqpylrZx40b88ccfZm9KldS+fXsVREjWaOrUqWohxkWLFpm9WVWKLHf+wAMPYO7cuargm8LXKT8UUrduXTgcjkKVv/J9w4YNTdsuq9Jf0+Jeb/makJDg83OpupaZIsbbBLoP42OQm6zL8+uvv2LBggVo2rSp93p5nWQoMCkpqdh9UdLrXNRtZAYEz87c5ExYZgf07t1bzdbp3r073n77be6DEJKhDvlckdkakgGViwR377zzjvq/ZBW4L8KD3Qp/8PLHPm/ePJ+0sXwvqUsKLhm+kD884+stKUKpndBfb/kqf9zyQaCbP3++2i9Si6HfRqa1ypioTs5E5MyQwyBuUjsrQYWk3eX18x86kve90+n02RdSoyLT6Yz7QtL4xkBPXmf5kJRUvn4b433ot+HfT9HkvZydnc19EEKDBg1Sr6NkjvSL1HHJtHb9/9wXYUKzyHRTmZUwadIkNSPhjjvuUNNNjZW/VLaqa5mKJRd5i7zxxhvq/3v37vVON5XX9+eff9bWr1+vjRw5MuB00549e2rLly/X/vjjD1XFbZxuKhXcMt30+uuvV9P2ZB/KFC9ONy1w9913q2m9Cxcu1A4fPuy9ZGRk+Eyvkymo8+fPV9Pr+vfvry7+0+uGDh2qpqzKlLl69eoFnF736KOPqir6999/n9PrDB577DE1E2f37t3q/S7fywynOXPmqJ9zH5jHOCtEcF+EB0sEFkLmGssbSvpZyPRT6Z9A5bNgwQIVUPhfbrzxRu+U06eeekoFBhLQDRo0SM3vNzp+/LgKJKpXr66mct18880qYDGSHhhnnXWWuo8mTZqogIUKBNoHcpHeFjoJ5u655x41/VE+DC+77DIVfBjt2bNHGzFihOoTInP2H374YS03N7fQPu/Ro4f6+2ndurXPY1R1t9xyi9aiRQv12shBSN7velAhuA/CJ7DgvggPXDadiIiIguaUr7EgIiKi8MHAgoiIiIKGgQUREREFDQMLIiIiChoGFkRERBQ0DCyIiIgoaBhYEBERUdAwsCAiIqKgYWBBREREQcPAgojK5KabbsKll15q9mYQUZhiYEFERERBw8CCiAKaOnUqunbtipiYGNSpUweDBw/Go48+ii+++AI///wzbDabuixcuFDdfv/+/Rg1ahRq1aqF+Ph4jBw5Env27CmU6Rg/fjzq1aunlqq+6667kJOTY+KzJKJgiwj6PRLRKe/w4cO49tpr8corr+Cyyy5DamoqlixZghtuuAH79u1DSkoKPv/8c3VbCSJyc3MxbNgw9O/fX90uIiICzz//PIYPH47169cjMjJS3XbevHmIjo5WwYgEHTfffLMKWl544QWTnzERBQsDCyIKGFjk5eXh8ssvR4sWLdR1kr0QksHIzs5Gw4YNvbf/+uuvkZ+fj08//VRlMYQEHpK9kCBi6NCh6joJMD777DPExsaic+fOePbZZ1UW5LnnnoPdzgQqkRXwL5mICunevTsGDRqkgomrrroKn3zyCU6ePFnk7detW4cdO3agRo0aqF69urpIJiMrKws7d+70uV8JKnSS4UhLS1PDKERkDcxYEFEhDocDc+fOxV9//YU5c+bg3XffxRNPPIHly5cHvL0EB71798Y333xT6GdST0FEVQcDCyIKSIY0BgwYoC5PP/20GhKZNm2aGs5wuVw+t+3Vqxe+++471K9fXxVlFpfZyMzMVMMpYtmyZSq70axZs0p/PkQUGhwKIaJCJDPx4osvYtWqVapY86effsKxY8fQsWNHtGzZUhVkbtu2DYmJiapwc/To0ahbt66aCSLFm7t371a1Fffffz8OHDjgvV+ZAXLrrbdi8+bNmDlzJv7zn//gvvvuY30FkYUwY0FEhUjWYfHixXjrrbfUDBDJVrz++usYMWIE+vTpo4IG+SpDIAsWLMC5556rbj927FhV8CmzSJo0aaLqNIwZDPm+bdu2GDhwoCoAlZknzzzzjKnPlYiCy6Zpmhbk+yQiKkT6WCQlJWH69OlmbwoRVSLmH4mIiChoGFgQERFR0HAohIiIiIKGGQsiIiIKGgYWREREFDQMLIiIiChoGFgQERFR0DCwICIioqBhYEFERERBw8CCiIiIgoaBBRERESFY/h9eC4KWQT+RrAAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.3797\n"
     ]
    }
   ],
   "execution_count": 13
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
